<?php
/** Error reporting */
	error_reporting(E_ALL);
	ini_set('display_errors', TRUE);
	ini_set('display_startup_errors', TRUE);
	date_default_timezone_set('Europe/London');

	if (PHP_SAPI == 'cli')
		die('This example should only be run from a Web Browser');

	/** Include PHPExcel */
	require_once 'protected/extensions/PHPExcel.php';

	// Create new PHPExcel object
	//$objPHPExcel = new PHPExcel();

	// Load file
	$objPHPExcel = PHPExcel_IOFactory::load('protected/views/site/pages/KHMoNhom.xlsx');
	
	// Định dạng
	$style_center = array(
        'alignment' => array(
            'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
        )
    );
	$style_bold = array(
    'font'  => array(
        'bold'  => true,
    ));
	
	// Add some data
	/*
	$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$lastrow, '1')
            ->setCellValue('B'.$lastrow, 'Nguyễn Bá Phương')
            ->setCellValue('C'$lastrow, '1993')
            ->setCellValue('D'.$lastrow, 'GS');*/
	
	// Kết nối CSDL
	$connection=Yii::app()->db;
	
	// Lấy dữ liệu
	$khoapt=$_POST['khoaphutrach5'];
	$hocky=$_POST['hocky'];
	$namhoc=(string)Yii::app()->request->cookies['year'];
	$dslop=$connection->createCommand('SELECT * FROM `thongtinsv` WHERE `thuockhoa`="'.$khoapt.'"')->query();
	
	// Tạo biến chạy và giới hạn chạy
	$sheet=0;
	$cell_start=13;
	$cell_end=$cell_start;
	$stt=1;
	
	// Tạo mảng lưu các vị trí cần Megre cell
	$batdau=array();
	$ketthuc=array();
	$num=0;
	
	// Tạo mảng chứa các mã môn học đã có
	$monhoc=array();
	$num_monhoc=0;
	
	// Tạo mảng các giảng viên
	$giangvien=array();
	$num_giangvien=0;
	
	// Số nhóm
	$sonhom=0;
	// Vòng lặp
	foreach ($dslop as $row)
	{
		$dsnhom=$connection->createCommand('SELECT * FROM `bangphu_phatsinhnhom` WHERE (`lop`="'.$row['makhoilop'].'" AND `donvi`="'.$khoapt.'" AND `namhoc`="'.$namhoc.'")')->query();
		if (count($dsnhom)>0)
		{
			// Cần có:
			// Mã HP (1)
			$mamh='';
			// Tên HP (1)
			$tenmh='';
			// Số TC (1)
			$sotc=0;
			// Tiết LT,TH,TC (1)
			$lt=0;
			$th=0;
			// Số nhóm, Số SV (1)
			$sv=0;
			// Mã + Tên CBGV
			$magv="";
			$tengv="";
			foreach ($dsnhom as $rows)
			{
				$mamh=$rows['mamh'];
				$temp=$connection->createCommand('SELECT * FROM `monhoc` WHERE `mamh`="'.$mamh.'";')->query();
				foreach ($temp as $temp2)
				{
					$tenmh=$temp2['tenmh'];
					$sotc=$temp2['soTC'];
					$lt=$temp2['sotietLT'];
					$th=$temp2['sotietTH'];
				}
				$sv=$rows['sosv'];
				// lấy 1 pt trong $dsnhom ra.
				// lấy tất cả các nhóm trong phancong ra
				$makhoilop=$rows['mamh'].'_'.$row['makhoilop'].'_'.$namhoc.'_'.$hocky;
				$all_nhom=$connection->createCommand('SELECT * FROM `phancong` WHERE `maNhom` like "'.$makhoilop.'%"')->query();
				// lấy tên của các giảng viên của 1 môn ra
				$sonhom=count($all_nhom);
				foreach ($all_nhom as $rowss)
				{
					$check=0;
					if (($rowss['magvchinh']=='')&&($rowss['magvphu']==''))
					{
						//$sonhom=$sonhom-1;
						$objPHPExcel->setActiveSheetIndex($sheet);
						$objPHPExcel->getActiveSheet()->insertNewRowBefore($cell_end,1);
						$cell_end=$cell_end+1;
						//break;
					}
					else
					{
						// Lấy giảng viên chính ra
						if ($rowss['magvchinh']!="")
						{
							for ($run_var=0;$run_var<$num_giangvien;$run_var++)
						{
							if ($giangvien[$run_var]==$rowss['magvchinh'])
							{
								$check=1;
								break;
							}
						}
						if ($check==0)
						{
							$magv=$rowss['magvchinh'];
							$tengv='';
							$query=$connection->createCommand('SELECT * FROM `giangvien` WHERE `magv`="'.$magv.'"')->query();
							if (count($query))
							{
								foreach ($query as $var)
								{
									$tengv=$var['tengv'];
								}
								// Ghi ra file
								$objPHPExcel->setActiveSheetIndex($sheet);
								$objPHPExcel->getActiveSheet()->insertNewRowBefore($cell_end,1);
								$objPHPExcel->setActiveSheetIndex($sheet)
											->setCellValue('K'.$cell_end, $magv)
											->setCellValue('L'.$cell_end, $tengv);
								$cell_end=$cell_end+1;
								$giangvien[$num_giangvien]=$magv;
								$num_giangvien=$num_giangvien+1;
							}
						}
						}
						$check=0;
						
						// Lấy giảng viên phụ ra
						if ($rowss['magvphu']!="")
						{
							for ($run_var=0;$run_var<$num_giangvien;$run_var++)
						{
							if ($giangvien[$run_var]==$rowss['magvphu'])
							{
								$check=1;
								break;
							}
						}
						if ($check==0)
						{
							$magv=$rowss['magvphu'];
							$tengv='';
							$query=$connection->createCommand('SELECT * FROM `giangvien` WHERE `magv`="'.$magv.'"')->query();
							foreach ($query as $var)
							{
								$tengv=$var['tengv'];
							}
							// Ghi ra file
							$objPHPExcel->setActiveSheetIndex($sheet);
							$objPHPExcel->getActiveSheet()->insertNewRowBefore($cell_end,1);
							$objPHPExcel->setActiveSheetIndex($sheet)
										->setCellValue('K'.$cell_end, $magv)
										->setCellValue('L'.$cell_end, $tengv);
							$cell_end=$cell_end+1;
							$giangvien[$num_giangvien]=$magv;
							$num_giangvien=$num_giangvien+1;
						}
						}
						$check=0;
					}
				}// Lấy hết GV ra
				
				// ghi ra file
				// Ghi Mã HP, tên HP, Số TC, Số tiết, Số nhóm, số SV
				$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('A'.$cell_start, $stt)
							->setCellValue('B'.$cell_start, $mamh)
							->setCellValue('C'.$cell_start, $tenmh)
							->setCellValue('D'.$cell_start, '')
							->setCellValue('E'.$cell_start, $sotc)
							->setCellValue('F'.$cell_start, $lt)
							->setCellValue('G'.$cell_start, $th)
							->setCellValue('H'.$cell_start, ($lt+$th))
							->setCellValue('I'.$cell_start, $sonhom)
							->setCellValue('J'.$cell_start, $sv);
				$batdau[$num]=$cell_start;
				$ketthuc[$num]=($cell_end-1);
				$cell_start=$cell_end;
				$num=$num+1;
				$stt=$stt+1;
			}
			
			// Merge cell
			for ($i=0;$i<$num;$i++)
			{
				if ($batdau[$i]!=$ketthuc[$i])
				{
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("A".$batdau[$i].":A".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("B".$batdau[$i].":B".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("C".$batdau[$i].":C".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("D".$batdau[$i].":D".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("E".$batdau[$i].":E".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("F".$batdau[$i].":F".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("G".$batdau[$i].":G".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("H".$batdau[$i].":H".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("I".$batdau[$i].":I".$ketthuc[$i]);
					$objPHPExcel->setActiveSheetIndex($sheet)->mergeCells("J".$batdau[$i].":J".$ketthuc[$i]);
				}
			}
			$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('D6',"Khoá 20".substr($row['makhoilop'],4,2)." -  Học kì ".$hocky.",  Năm học ".$namhoc."-".($namhoc+1));
			if (substr($row['makhoilop'],0,1)=="C")
			{
				$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('D7',"Trình độ đào tạo: Cao Đẳng");
			}
			else
			{
				$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('D7',"Trình độ đào tạo: Đại Học");
			}
			if ((substr($row['makhoilop'],0,3)=="CTO")||(substr($row['makhoilop'],0,3)=="DTO"))
			{
				$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('D8',"Ngành đào tạo: Sư Phạm Toán");
			}
			else
			{
				$objPHPExcel->setActiveSheetIndex($sheet)
							->setCellValue('D8',"Ngành đào tạo: Toán Ứng Dụng");
			}
			$objPHPExcel->getActiveSheet()->setTitle($row['makhoilop']);
			$sheet=$sheet+1;
		}
	}

	// Set active sheet index to the first sheet, so Excel opens this as the first sheet
	$objPHPExcel->setActiveSheetIndex(0);

	// save file
	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
	$objWriter->save('test.xls');

	// Redirect output to a client’s web browser (Excel2007)
	header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
	header('Content-Disposition: attachment;filename="KehoachMoNhom.xlsx"');
	header('Cache-Control: max-age=0');

	$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
	$objWriter->save('php://output');
	echo '<script type="text/javascript">setTimeout("window.close();", 3000);</script>';
	die;exit;
?>